#include <jni.h>
#include <string>

#include <android/log.h>
#include <android/native_window_jni.h>
#include <CL/cl.h>
#include <CL/cl_platform.h>
#define LOGD(...) __android_log_print(ANDROID_LOG_INFO,"David",__VA_ARGS__)
extern "C" JNIEXPORT jstring JNICALL
Java_com_example_myopencldemo_MainActivity_stringFromJNI(
        JNIEnv* env,
        jobject /* this */) {
    LOGD("=============================================\n");
    /*全局变量*/
    cl_platform_id *platforms;//查询后获得的平台列表，存放所有平台的ID
    cl_uint num_platforms;//当前可查询的平台的数量

/*第一个JNI，这是查询你的平台数量。*/
    jint buffer;//创建一个buffer用以缓存平台数量，并传递；
    clGetPlatformIDs(0, NULL, &num_platforms);
    //当第二个参数为NULL时，函数将会查询当前可用平台的数量，并保存在第三个参数;
    platforms = new cl_platform_id[num_platforms];//查询后获得的平台列表，存放所有平台的ID
    //platforms = new cl_platform_id[num_platforms];
    clGetPlatformIDs(num_platforms ,platforms ,NULL);
    //获取平台数量后可以查询平台，将查询到的平台ID保存在第二个列表参数中
    buffer = num_platforms;
    LOGD("平台数:%d\n",buffer);
    LOGD("平台ID:%d\n",platforms);
    LOGD("=============================================\n");
    std::string hello = "Hello from C++";
    return env->NewStringUTF(hello.c_str());
}